#include "../comm.h"
class Solution {
public:
    int incremovableSubarrayCount(vector<int>& a) {
        int n = a.size();
        int i = 0;
        while (i < n - 1 && a[i] < a[i + 1]) ++i;
        // 该数组为严格递增有序数组
        if (i == n - 1)
            return n * (n + 1) / 2;

        // 不保留后缀的情况
        int ans = i + 2;

        // 固定后缀，逐个求解可能
        for (int j = n - 1; j == n - 1 || a[j] < a[j + 1]; --j)
        {
            while (i >= 0 && a[i] >= a[j]) --i;
            ans += i + 2;
        }
        return ans;
    }
};